package com.ruoyi.process.pipemaintainence.domain;

import com.ruoyi.system.domain.SysUser;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;

import java.beans.Transient;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class DrainagePipeMaintainence implements Serializable {
    protected String id;

    @com.fasterxml.jackson.annotation.JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected Date createTime;

    protected String createBy;

    @com.fasterxml.jackson.annotation.JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected Date updateTime;

    protected String updateBy;

    protected String status;

    protected String problemSources;

    @com.fasterxml.jackson.annotation.JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected Date reportTime;

    protected String contact;

    protected String telephone;

    protected String bigClassName;

    protected String smallClassName;

    protected String associatedOfficeNum;

    protected String problemDescription;

    protected String isDifficultParts;

    @com.fasterxml.jackson.annotation.JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected Date solveDeadline;

    @com.fasterxml.jackson.annotation.JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected Date expirationTime;

    protected BigDecimal length;

    protected BigDecimal width;

    protected BigDecimal area;

    protected String memberArea;

    protected String issuePalce;

    protected String remark;

    protected String solveDepartment;

    protected String processInstanceId;

    protected String processDefId;

    //-- 临时属性 --//

    // 流程任务

    private String taskId;
    private String taskDefKey;

    public String getTaskDefKey() {
        return taskDefKey;
    }

    public void setTaskDefKey(String taskDefKey) {
        this.taskDefKey = taskDefKey;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    private Map<String, Object> variables;

    // 运行中的流程实例
    private ProcessInstance processInstance;

    // 历史的流程实例
    private HistoricProcessInstance historicProcessInstance;

    // 流程定义
    private ProcessDefinition processDefinition;

    //新增抄送人集合 userId集合
    protected List<SysUser> receiverList;

    public List<SysUser> getReceiverList() {
        return receiverList;
    }

    public void setReceiverList(List<SysUser> receiverList) {
        this.receiverList = receiverList;
    }

    //批注信息
    protected String comment;
    //审批意见
    protected Boolean opinion;

    protected SysUser startByUser;

    public Boolean getOpinion() {
        return opinion;
    }

    public void setOpinion(Boolean opinion) {
        this.opinion = opinion;
    }
    public SysUser getStartByUser() {
        return startByUser;
    }

    public void setStartByUser(SysUser startByUser) {
        this.startByUser = startByUser;
    }

    public Date getExpirationTime() {
        return expirationTime;
    }

    public void setExpirationTime(Date expirationTime) {
        this.expirationTime = expirationTime;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public String getProcessDefId() {
        return processDefId;
    }

    public void setProcessDefId(String processDefId) {
        this.processDefId = processDefId;
    }

    @Transient
    public ProcessInstance getProcessInstance() {
        return processInstance;
    }

    public void setProcessInstance(ProcessInstance processInstance) {
        this.processInstance = processInstance;
    }

    @Transient
    public HistoricProcessInstance getHistoricProcessInstance() {
        return historicProcessInstance;
    }

    public void setHistoricProcessInstance(HistoricProcessInstance historicProcessInstance) {
        this.historicProcessInstance = historicProcessInstance;
    }

    @Transient
    public ProcessDefinition getProcessDefinition() {
        return processDefinition;
    }

    public void setProcessDefinition(ProcessDefinition processDefinition) {
        this.processDefinition = processDefinition;
    }


    @Transient
    public Map<String, Object> getVariables() {
        return variables;
    }

    public void setVariables(Map<String, Object> variables) {
        this.variables = variables;
    }


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy == null ? null : createBy.trim();
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy == null ? null : updateBy.trim();
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status == null ? null : status.trim();
    }

    public String getProblemSources() {
        return problemSources;
    }

    public void setProblemSources(String problemSources) {
        this.problemSources = problemSources == null ? null : problemSources.trim();
    }

    public Date getReportTime() {
        return reportTime;
    }

    public void setReportTime(Date reportTime) {
        this.reportTime = reportTime;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact == null ? null : contact.trim();
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone == null ? null : telephone.trim();
    }

    public String getBigClassName() {
        return bigClassName;
    }

    public void setBigClassName(String bigClassName) {
        this.bigClassName = bigClassName == null ? null : bigClassName.trim();
    }

    public String getSmallClassName() {
        return smallClassName;
    }

    public void setSmallClassName(String smallClassName) {
        this.smallClassName = smallClassName == null ? null : smallClassName.trim();
    }

    public String getAssociatedOfficeNum() {
        return associatedOfficeNum;
    }

    public void setAssociatedOfficeNum(String associatedOfficeNum) {
        this.associatedOfficeNum = associatedOfficeNum == null ? null : associatedOfficeNum.trim();
    }

    public String getProblemDescription() {
        return problemDescription;
    }

    public void setProblemDescription(String problemDescription) {
        this.problemDescription = problemDescription == null ? null : problemDescription.trim();
    }

    public String getIsDifficultParts() {
        return isDifficultParts;
    }

    public void setIsDifficultParts(String isDifficultParts) {
        this.isDifficultParts = isDifficultParts == null ? null : isDifficultParts.trim();
    }

    public Date getSolveDeadline() {
        return solveDeadline;
    }

    public void setSolveDeadline(Date solveDeadline) {
        this.solveDeadline = solveDeadline;
    }


    public BigDecimal getLength() {
        return length;
    }

    public void setLength(BigDecimal length) {
        this.length = length;
    }

    public BigDecimal getWidth() {
        return width;
    }

    public void setWidth(BigDecimal width) {
        this.width = width;
    }

    public BigDecimal getArea() {
        return area;
    }

    public void setArea(BigDecimal area) {
        this.area = area;
    }

    public String getMemberArea() {
        return memberArea;
    }

    public void setMemberArea(String memberArea) {
        this.memberArea = memberArea == null ? null : memberArea.trim();
    }

    public String getIssuePalce() {
        return issuePalce;
    }

    public void setIssuePalce(String issuePalce) {
        this.issuePalce = issuePalce == null ? null : issuePalce.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public String getSolveDepartment() {
        return solveDepartment;
    }

    public void setSolveDepartment(String solveDepartment) {
        this.solveDepartment = solveDepartment == null ? null : solveDepartment.trim();
    }

    public String getProcessInstanceId() {
        return processInstanceId;
    }

    public void setProcessInstanceId(String processInstanceId) {
        this.processInstanceId = processInstanceId == null ? null : processInstanceId.trim();
    }
}